Organizations with more than trivial needs for customer interaction often use call centers to provide services to their customers and to organize sales personnel. A call center is a central place where an organization (company) handles customer and other calls, usually with some amount of computer automation. Typically, a call center can handle a considerable volume of inbound and outbound calls at the same time, to screen inbound calls, forward them to agents with appropriate skills, and to maintain records of the calls and the call center agents. Call centers have traditionally been used by mail-order catalog companies, telemarketing companies, computer product help desks, and large organizations that use the telephone to sell or service products and services.
With the advent of the information revolution of the 1980's and 90's, customer interactions often involve communications through alternative channels, such as facsimile (fax) transmissions, email, and web-based contacts. (We will generically refer to these interactions and the conventional telephone calls as “e-contacts,” “contacts,” “interactions,” or simply as “calls.”) The individual agent skills required for a particular customer interaction depend on the nature of the customer's need and the customer's identity; the skills generally do not depend on the specific type of e-contact made, be it by telephone, email, fax, or web-based. Therefore, it is desirable call center efficiency and flexibility by allowing the agents to respond to contacts based on agent skills, and without differentiation based on contact type.
Individual handling of interactions is expensive. The expense rises whenever a specific interaction cannot be handled immediately, requiring rerouting and handling by multiple agents. Moreover, customers tend to get frustrated when their contacts are rerouted. It would be advantageous to pre-process received calls to identify the most appropriate agents and to link the call to relevant information available to the agents. To some extent this is already done through the use of Interactive Voice Response (“IVR”) systems, but IVR systems tend to irritate customers and, in any event, it would be desirable to pre-process contacts automatically and without regard to the specific contact type or medium.
Because a call center is the focal point of customer interaction for a typical company, its failures damage the company's good will and often result in immediate loss of sales. It is important for the call center to have high reliability. One way to achieve it is through distributed, fault-tolerant design. By “fault-tolerant design” we do not mean a merely “fail-safe design,” where the system has built-in redundancy and can restart a failed process or switch to its equivalent and continue operations after a brief interruption. Because even a brief interruption can cause dropped calls, it is preferable to have a seamless transition to the back-up process without dropping calls.
In a competitive environment, a company need not be a “dot-com” to require a functional call center within a short time. But provisioning such a center in the modern eclectic telecommunications environment is a labor-intensive, long, and complicated task usually performed “integrators.” It is highly desirable to have the capability to provision call centers quickly and without the massive efforts of trained technicians, engineers, and programmers.
A call center's need for resources varies with many factors, such as the time of day. For example, some call centers are busiest in the early evening, the time telemarketers believe to be most propitious for credit card applications and long-distance telephone service selection. In contrast, call centers for business-related services are busiest during regular business hours. For this reason, it would be advantageous to share call center resources with additional call centers, or even with completely different applications. More particularly, it is desirable to be able to shift resources between applications, starting and stopping the resources seamlessly, without disturbing existing calls and without preventing immediate processing of new calls. Similarly, it is desirable to have dynamic balancing, adding and stopping resources when usage or availability of physical hosts changes.
In fact, any high volume telecommunications environment would benefit from resolution of the needs described above. A typical high volume telecommunications environment may have thousands, even millions, of dedicated lines, often operating inefficiently because each company has dedicated telephone lines and associated hardware, such as PrivateBranch Exchanges (PBXs), Automated Call Distributors (ACDs), IVRs, Fax Servers, Conferencing Bridges, Internet Chat Servers, or Voice Over IP (VoIP) Gateways. The hardware, dedicated lines, and other facilities can be hosted by the service provider or a telephone company. These resources are not shared among the various companies and operate inefficiently as a whole. Shared use is therefore desirable to achieve economies of scale and to allow efficient re-distribution or re-allocation of such resources.
Another desirable feature is flexibility in limiting call center use, so that the call center operator (or licensor) can provide various billing and service packages to the companies.